1. Field of the Invention
The present invention relates to data processing apparatuses configured to execute instructions in an execution pipeline. More particularly, the present invention relates to data processing apparatuses having an error recovery unit configured to initiate a recovery process when an error is detected as having occurred during execution of an instruction in the execution pipeline.
2. Description of the Prior Art
It is known to provide a data processing apparatus which has an execution pipeline in which instructions provided to the data processing apparatus are executed in a sequence of pipelined execution stages. It is further known to provide an exception storage unit in association with such an execution pipeline, the exception storage unit being arranged to maintain a list corresponding to the instructions being executed in the execution pipeline such that a recovery procedure can be initiated if it is established that there has been a problem associated with the execution of a particular instruction. For example, in a data processing apparatus configured to speculatively execute instructions on the basis of a branch prediction, if that branch prediction turns out to have been incorrect, it is necessary to “rewind” the instruction execution to the point at which the branch was mis-predicted. Another example is the case of an instruction which initiates a load operation which seeks to retrieve data stored in an external device, wherein that load operation may abort, requiring the associated instruction to be reissued to the execution pipeline. An exception storage unit enables such replaying of instructions to take place by maintaining a set of status information associated with each instruction currently being executed until each instruction is confirmed by the execution pipeline to have successfully completed.
It is further known to provide a data processing apparatus with at least one error detection unit which is configured to take two samples of a given signal propagating in the data processing apparatus, the second sample being taken after a short delay period with respect to the first sample, and to generate an error signal if the two samples differ. Such an error detection unit is for example of benefit in a data processing apparatus in which it may be attempted to operate the data processing apparatus at, or at least close to, its limits of reliable operation, for example in terms of clock speed, operating voltage, or even process reliability. An error signal generated by the error detection unit can indicate that the data processing apparatus has entered a regime in which the first sample of the signal has become unreliable (as determined with reference to the second sample), for example because a changing signal has been sampled slightly too early and therefore in a wrong state.
In a data processing apparatus which has an error detection unit it is further known to provide an error recovery unit which seeks to initiate an error recovery procedure which is carried out to seek to remedy adverse consequences resulting from that error. For example, in conjunction with an exception storage unit in the data processing apparatus, if the error detected is associated with a particular instruction, that instruction and any that follow it in the exception storage unit may be replayed in order to ensure that correct data processing operations in response to the data processing instructions are carried out.
However, depending on the nature of the signal of which a detected error is associated, prior art techniques for identifying the occurrence of that error and seeking to remedy it can prove to be fallible, in that situations can arise in which the data processing apparatus cannot successfully recover when some errors occur. Accordingly, it would be desirable to provide an improved technique for recovery which enables the data processing apparatus to successfully resume correct operation, regardless of where the error occurs in the data processing apparatus.